package com.cn.wanxi.servlet;

import com.cn.wanxi.dto.CommonModelDto;
import com.cn.wanxi.dto.CompanyModelDto;
import com.cn.wanxi.dto.HomeModelDto;
import com.cn.wanxi.io.CommonIO;
import com.cn.wanxi.io.CompanyModelIO;
import com.cn.wanxi.io.HomeIO;
import com.cn.wanxi.io.NavIO;
import com.cn.wanxi.model.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/home")
public class HomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //创建一个IO对象，主要用于得到公司信息的值
//        CompanyModel companyModel=new CompanyModel();
//        CompanyModelIO companyModelIO = new CompanyModelIO();
//        CompanyModelDto companyModel = companyModelIO.getCompanyModel();
//
//        req.setAttribute("companyModel", companyModel);


//        NavModel navModel = new NavModel();//主要是用来取得数据
//        NavIO navIO = new NavIO();
//        List<NavModel> navList = navIO.getNavListFromNote();
//        req.setAttribute("navList", navList);//这是导航数据

        /**
         * 1.头部和底部共分为两块
         * 一块是公司信息：logo  电话  网址 ，名字，，座机  地址  网站版本 公司邮箱
         * 一块是导航信息 ：  导航标题  导航地址链接
         * 2.得到公司信息
         *  1）创建公司的实体类 CompanyModel，设置set和get方法
         *  2）通过new关键字创建对象，CompanyModel companyModel = new CompanyModel();
         *     得到公司信息
         *  3）将得到的值返回给页面
         *          req.setAttribute("companyModel", companyModel);
         * 3.得到导航信息（创建一个方法 getNavList()）
         *  1）创建导航实体类NavModel  设置set和get方法
         *  2）创建数据导航标题和链接数组：navHref  navTitle
         *  3）我们需要将数组里所有数据封装到对象，然后将对象封装到集合
         *      1.封装到对象  NavModel navModel=new NavModel();
         *      navModel.setHref(navHref[i]);
         *      navModel.setTitle(navTitle[i]);
         *      2.封装到集合
         *      list.add(navModel);
         *  4)在servlet里面通过在NavModel里面的getNavList方法得到集合
         *  5）将得到的集合返回给页面
         *      req.setAttribute("navList", navList);
         */

//        HomeModel homeModel=new HomeModel();
//        List<HomeModel>  homeList=homeModel.getHomeModel();
//        req.setAttribute("homeList",new HomeModel().getHomeModel());//这里全部是头部和底部的信息（包括导航）


//        新闻动态
//        HomeModel homeModel = new HomeModel();
//        List<NewsModel> newsList = new ArrayList<>();//这是一个空的集合，用来存储新闻动态的数据
//        因为显示3条数据，数据在homeModel里面，是一个数组，需要循环
//        for (int i = 0; i < homeModel.newsTitle.length; i++) {
//            NewsModel newsModel = new NewsModel();
//            newsModel.setTitle(homeModel.newsTitle[i]);
//            newsModel.setContent(homeModel.newsContent[i]);
//            newsList.add(newsModel);
//        }
//        newsList=new NewsModel().getNewsModelList();
//        newsList=new HomeIO().getNewsModelList();
//        req.setAttribute("newsList", newsList);
        //这里我们去调用HomeModelDto的时候，需要对立面的属性进行赋值
        CommonIO commonIO=new CommonIO();
        req.setAttribute("commonModelDto",commonIO.getFromCommon());
        HomeIO homeIO = new HomeIO();
        req.setAttribute("homeModelDto", homeIO.getFromHomeIO());
//        产品展示
//        List<ProductModel> productList = new ArrayList<>();
//        for (int i = 0; i < homeModel.productImgs.length; i++) {
//            ProductModel productModel = new ProductModel();
//            productModel.setImgHref(homeModel.productImgs[i]);
//            productModel.setName(homeModel.productNames[i]);
//            productModel.setContent(homeModel.productContents[i]);
//            productList.add(productModel);
//        }
//        productList=new ProductModel().getProductModelList();


//        productList = new HomeIO().getProductList();
//        req.setAttribute("productList", productList);//这个是传递到前台的产品信息的值


        req.getRequestDispatcher("/jsp/home.jsp").forward(req, resp);//将值转发到页面去
    }
}
